Method for building and managing a web site

ABSTRACT

A method for managing and/or producing an output, the method comprising the steps of providing one or more layouts, each layout being divided into a number of zones, the one or more layouts in combination at least substantially covering the output; providing a number of rendering elements, each being adapted to perform a function and/or an action; assigning one or more relations and/or one or more orderings between the rendering elements and the zones; processing the zones of the one or more layouts according to the one or more relations and/or the one or more orderings, and by means of the rendering elements; providing, for each of the zones, an output based on the rendering elements and the one or more relations and/or orderings; and collecting the output of each of the zones into a final output.

TECHNICAL FIELD

[0001] The present invention relates to a method for managing and/or producing an output. In particular the present invention relates to a method for building and managing a web site, in particular for creating, updating and maintaining a web site. The present invention further relates to a web site which has been created and may be updated and maintained using the method.

BACKGROUND OF THE INVENTION

[0002] During the past years companies world wide have struggled with creating content management systems (CMS) for web sites. The purpose of a content management system is to allow the content managers (editors) to update the content of a web site as easily as possible. Basically, a content manager is an editor on which the structure and elements of a web site is imposed. So far CMS have been no more than simple editors based around simple observations of the structure of a web site.

[0003] CMS also try to solve a second task, namely that of being able to quickly build a new web site. Based on the observations of common web site structures, CMS suppliers attempt to give the user a gallery of web-templates for common web site designs. This has caused a multitude of different CMS because none of the existing approaches has captured the representation of the generic structure of web sites within a single CMS. Whenever one finds a suitable structure there is always an exception to the rules when using the system for a new customer. Present CMS are therefore typically designed for special purpose web sites such as for example info sites, eCommerce or Portals. These systems thus limit the functionality to what a typical web site of a certain type would need/require. For example, the user might need to put the content into a template as shown in FIG. 1.

[0004] In the sample template of FIG. 1 the user could typically choose to put the menu in Area₂, some design in Area₁, and the textual content in Area₃. Obviously, basing a web site on fixed templates, or a template gallery, will always lead to shortcomings. Good examples of such CMS include the CMS made by Oracle.

SUMMARY OF THE INVENTION

[0005] It is an object of the present invention to provide a content management system (CMS) for web sites which provides an easy to use tool for creating web sites which does not impose restrictions on the obtainable complexity of the resulting web site.

[0006] It is a further object of the present invention to provide a CMS for web sites which provides a tool for easily updating and/or maintaining the web site.

[0007] It is an even further object of the present invention to provide a CMS for web sites which has a high degree of reuse of components on the web site.

[0008] It is still a further object of the present invention to provide a web site which may easily be created, updated, and/or maintained, without having a limited complexity.

[0009] According to a first aspect of the present invention the above and other objects are fulfilled by a method for managing and/or producing an output, the method comprising the steps of:

[0010] providing one or more layouts, each layout being divided into a number of zones, the one or more layouts in combination at least substantially covering the output,

[0011] providing a number of rendering elements, each being adapted to perform a function and/or an action,

[0012] assigning one or more relations and/or one or more orderings between the rendering elements and the zones,

[0013] processing the zones of the one or more layouts according to the one or more relations and/or the one or more orderings, and by means of the rendering elements,

[0014] providing, for each of the zones, an output based on the rendering elements and the one or more relations and/or orderings, and

[0015] collecting the output of each of the zones into a final output.

[0016] According to a second aspect of the present invention the above and other objects are fulfilled by a web site comprising:

[0017] one or more layouts, each layout being divided into a number of zones, the one or more layouts in combination at least substantially covering the web site,

[0018] an output which has been generated by a number of rendering elements based on one or more relations and/or one or more orderings between the rendering elements and the zones.

[0019] The one or more layouts in combination define the final output, e.g. what is to be presented on a resulting web site, and how it is to be presented. For example, one layout may define the basic output, e.g. the overall design of a web site, while other layouts may define the design/contents of various areas or zones, e.g. various areas of a web site and/or the design/contents of individual elements of the web site. In this example, the layouts defining the design/contents of various areas and/or the design/contents of individual elements, normally refer to the layout defining the overall design of the web site. Thus, the position of one or more particular elements or one or more particular groups of elements of the output may easily be changed by simply performing the necessary changes with respect to, e.g., the layout defining the basic output. Similarly, the design/contents of a particular element may be changed, updated and/or maintained by simply performing the necessary changes to the layout(s) which define the design/contents of that element. Thus, the method provides a tool for creating, updating and maintaining an output, e.g. a web site. Furthermore, the method does not impose restrictions on the possible complexity of the final output, such as the resulting web site.

[0020] The rendering elements are adapted to perform a function and/or an action. This may comprise generating an output which can be visualised. When a relation between a rendering element and a zone is established, an output of that zone is therefore provided. There may be established relations between a number of rendering elements and a particular zone. In this case the final output of that zone is a combination of the results of the functions and/or actions performed by the rendering elements in question. This may result in an output having a high degree of complexity.

[0021] Furthermore, the orderings of the rendering elements in relation to each other and in relation to a certain zone may be very important for the final output, e.g. the appearance of a web site, because the ordering usually is of consequence to the final appearance.

[0022] The invention thus provides a new dynamic method for rendering arbitrarily complex designs. The invention is based on very fundamental observations which, when put together in the correct fashion, allows the representation of structures of unlimited complexity with unprecedented reuse of components.

[0023] Programmers and developers may use a program designed around the invention to create new component based web sites very quickly and easily. Likewise it is simple to impose the editor on top of the dynamic structure and hence give content managers (editors) a versatile tool for updating the content. Thus, the present invention will have a great impact on the work of programmers, developers, and editors alike.

[0024] The basic observation and invention evolve around these observations:

[0025] Visual representations can be split into areas. Each area is in itself a visual representation and can be split further into areas. A rendering function can generate visual output. A rendering function may also perform programmatic actions. Rendering functions can be assigned to an area. Each area can be rendered separately. Rendering within one area can occur multiple times with possibly different rendering functions. Areas can be collected in groups (a framework) as a visual representation. Combining all frameworks generate the final visual presentation.

[0026] A programmatic function may, e.g., be generating sounds, fetching data, checking login, performing redirections, searching, form handling, and/or performing calculations. Furthermore, a programmatic function (in the rendering element) may generate a visual output.

[0027] The method may further comprise the step of assigning one or more relations and/or one or more orderings between at least one of the one or more layouts and the zones. In this case a relation and/or an ordering between a layout, in itself defining a number of zones, and a zone may be provided. Thus, a full layout may be ‘embedded’ in a zone defined by another layout, e.g. a layout defining the overall design of the web site. Thus, it is possible to have a number of ‘sub-zones’ within a zone.

[0028] The method may even further comprise the steps of:

[0029] processing the zones of the one or more layouts according to the one or more relations and/or the one or more orderings, and by means of the rendering elements and the layouts, and

[0030] recursively resolving all of the layouts into rendering elements until each zone and each layout can be rendered using rendering elements.

[0031] Thus, in case a relation is provided between a layout and a zone by means of another layout, the first layout is first resolved, and the result is then applied to the zone. Thus, the final output defined by the rendering elements of the first layout is embedded into the zone. This makes it very easy to manage the web site.

[0032] The step of processing the zones may be performed in such a way that each zone is processed independently of each of the other zones. Thus, the contents/design of one zone may be completely independent of the contents/design of any of the other zones.

[0033] Alternatively or additionally, the step of assigning one or more relations and/or one or more orderings between the rendering elements and the zones may be performed in such a way that, for at least one of the zones, relation(s) and/or ordering(s) between said zone(s) and two or more rendering elements is provided. Thus, two or more (or even several) rendering elements may be connected/assigned to a particular zone. Accordingly, that zone may comprise several design elements, resulting in a final output without restrictions on the possible complexity. This is a very important advantage.

[0034] The step of assigning one or more relations and/or one or more orderings between the rendering elements and the zones may comprise combining at least two layouts in such a way that, for each zone, the relation(s) and/or ordering(s) comprises an addition of the relation(s) and/or ordering(s) for each of the at least two layouts. This is a relatively simple way of combining the layouts. In order to determine the relation(s) and/or ordering(s) related to a given zone, one simply looks at the relation(s) and/or ordering(s) originating from each layout, and the result is added. This will be described further below. =p In case at least two layouts are provided, one of the two or more layouts may define the basic structure of the output, and one or more of the other layout(s) may define the contents of one or more of the zones. In this case the ‘basic’ layout may determine the overall design of a web site, such as the position of certain basic element, e.g. the position of a menu, the position of a main information field, the mutual sizes of certain-elements, etc. The other layouts, on the other hand, may determine the actual design/contents of certain elements, e.g. a menu, a header, a main information field, etc.

[0035] Alternatively, two or more layouts may define the basic design of the web site, e.g. in case the site has more than one type of appearance.

[0036] The method may further comprise the step of redefining the final output by altering the one or more relations and/or the one or more orderings between the rendering elements and the zones. Thus, the final output, e.g. the contents of a web site and/or the position of certain elements, may easily be altered by simply making the necessary alterations to the relevant relations/orderings.

[0037] Alternatively or additionally, the method may further comprise the step of redefining the final output by altering one or more of the rendering elements and/or by replacing one or more of the rendering elements with one or more different rendering elements. Thus, the final output, e.g. a web site, may easily be updated or maintained by simply making the necessary alterations to the relevant rendering elements, or by simply using a different rendering element for a specific purpose. An element may thus be updated/altered without affecting the other elements of the output. This is a very important advantage since it makes it provides a versatile tool for the manager of the output, e.g. a web manager, for updating/maintaining the output.

[0038] The method may further comprise the step of making the output available via a communication network. Preferably, the communication network is a global communication network, such as the Internet. However, it may alternatively be a local computer network with only a limited number of users having access to the web site, or it may be GSM, iMOde, UMTS, etc.

[0039] Possibly, the used data format is based on Extensible Markup Language (XML), and/or the rendering elements are based on Extensible Stylesheet Language Transformations (XSLT). Furthermore, formats such as HTML, Text-TV, Video, WAP, iMOde, Graphics, Text, and Sound may be used. The rendering elements may be based on NET.

[0040] The method may further comprise the step of generating structured data by means of the rendering elements. The structured data is preferably generated by the rendering elements. Thus, in this case, in addition to generating a visual output, the rendering elements are adapted to generate an output of structured data, e.g. XML, XSL, CSV, HTML, WAP, Programming languages, binary data, etc. Web services may be generated by means of the rendering elements.

[0041] The output may comprise at least part of the contents of a web site. In this case the final output preferably comprises at least part of the visual appearance of the web site. The web site is easily produced and managed using the method according to the invention.

[0042] The rendering elements may be adapted to generate an output, such as a visual output. In the latter case the step of collecting the output of each of the zones into a final output is preferably performed by displaying the visual output of each of the zones.

[0043] Alternatively or additionally, the rendering elements may be adapted to process a layout. Thus, in case a layout is embedded in another layout, a rendering element may be adapted to process the embedded layout, thereby providing a possibility of recursively processing the layouts.

[0044] The method may further comprise the steps of:

[0045] caching the,output from one or more of the zones and/or from one or more of the rendering elements and/or from one or more of the layouts, and/or the final output, and

[0046] using the cached output at a later time.

[0047] In case the step of processing the zones and/or the step of collecting the output of each of the zones is/are very time consuming, e.g. because many calculations are required, it may be desirable to cache the result, so that it is possible to use it at a later time. This will save computing time.

[0048] At least one of the rendering elements may comprise an ordered sequence of rendering elements, the output of each of the rendering elements of said sequence being used as an input to the subsequent rendering element.

[0049] The rendering elements may, thus, be related in a ‘pipeline’. A pipeline is a series of rendering elements, where the output of a rendering function provides input to the next rendering function. Furthermore, there could be pipelines in the pipeline (feeding the input/output to the next rendering element/pipeline).

[0050] The method may further comprise the steps of:

[0051] receiving structured data, said structured data being divided into substructures,

[0052] assigning one or more layouts to each substructure, and

[0053] processing each substructure in such a way that the assigned layout(s) is/are processed, resulting in an output.

[0054] When downloading a web site, the computer receives structured data divided into substructures. If one or more layouts are assigned to the substructures, the layout engine will ‘know’ how to interpret the structured data, i.e. it will ‘know’ how to ‘draw’ the layout so as to produce the correct visual output.

[0055] In this case the method may even further comprise the step of placing an editor on the structured data.

BRIEF DESCRIPTION OF THE DRAWING

[0056]FIG. 1 shows an example of a prior art web site template,

[0057]FIGS. 2a-2 b show examples of a basic design according to the invention,

[0058]FIGS. 3a-3 b illustrate a merging rule according to the invention,

[0059]FIGS. 4a-4 i illustrate a combine rule according to the invention,

[0060]FIGS. 5a-5 j illustrate another combine rule according to the invention,

[0061]FIGS. 6a-6 e illustrate layout designations according to the invention,

[0062]FIGS. 7a-7 c show an example of the design of a web site according to the invention,

[0063]FIGS. 8a-8 g show various rendering elements used in a web site according to the invention,

[0064]FIGS. 9a-9 e show examples of layouts according to the invention, and

[0065]FIGS. 10a-10 d show examples of complete web sites according to the invention.

DETAILED DESCRIPTION OF THE DRAWINGS

[0066] Below the following definitions will be used.

[0067] Definitions

[0068] Grids: A grid is a division of an area into smaller areas. In the following, the areas are illustrated by squares, though this may be any shape. Divisions need not be absolute.

[0069] Cell: A cell is one of the divided smaller areas in the grid.

[0070] Framework (F_(n)): A framework is a grid representing of the abstraction of what's to be drawn. A framework can have visual properties. A Framework is referenced as F_(n).

[0071] Zone (Z_(n)): A zone is the cell of a framework. A zone can have visual properties. A zone will be referenced as Z_(n).

[0072] Rendering Element (R_(n)): Rendering elements generates output that may be visualized. A rendering element will be referenced as R_(n).

[0073] Layout (L): A layout is a collection of Rendering Elements or (combined) Layouts (recursive) that point to various zones in a given framework. A layout will be referenced as L_(n).

[0074] Combined layout (CL_(n)): A combined layout combines a first (combined) layout with a second (combined) layout. Combined layout will be referenced as CL_(n).

[0075] Combine rule (CR_(n)): A rule describing how to combine layouts/how to combine layouts and combined layouts.

[0076] Layout designation (LD): The layout designation points an entire layout L or combined layout CL to a zone Z in a framework F. For example L₂(LD)=F₁Z₃. A layout designation will be referenced as LD_(n).

[0077] Mathematical Abstract Definition

[0078] Points (→): The point symbol refers to the binding between layouts, rendering elements, zones and frameworks. Eg. L_(n)→F_(m) means L_(n) is referencing F_(m)

L_(n)→F_(m)

R_(n)εL_(m)

R_(n)→z_(m)

L_(n)→F_(m):

{R₁→z₁,R₂→z₂, . . . ,R_(n)→z_(n)∫z₁,z₂,z_(n)εZ_(n)}∪

{L₁→z₁,L₂→z₂, . . . ,L_(n)→z_(n)∫z₁,z₂,z_(n)εZ_(n)}

[0079] Depending on the rule CR_(n), the combined layout would be represented by:

CL=CL₁CR_(n)CL₂CR_(m) . . . CL_(x)

[0080] Where the Combine rule describes the way to combine two layouts, e.g. the Rule merge (merges zones) or the rule append (append zones).

[0081] As the above definitions describe we do have a number of layouts that can be rendered either alone or combined. Each layout points to a specific framework and contains a number of rendering elements that points various zones in the framework.

Examples

[0082] A framework F₁ could be designed as shown in FIG. 2a. A layout L₁ could be designed as follows, pointing to F₁ of FIG. 2a:

L₁→F₁: {R₁→F₁z₁,R₂→F₁z₂,R₃→F₁z₂,R₄→F₁z₃,R₅→F₁z₃,R₆→F₁z₃}

[0083] A much clearer representation is illustrated in FIG. 2b, where the rendering elements which are related to a specific zone are depicted in that zone. FIG. 2a shows the resulting visual representation. Note, that the ordering of the elements can impact the way the rendering is performed.

[0084] In FIG. 2b, R₁ could for example represent a function to generate top graphics, R₂ a function to generate a left menu, R₃ to generate an advertising spot, R₄ to generate a header, R₅ to generate textual content and R₆ to generate a legal footer.

[0085] Combine Rule CR₁: Merging

[0086] Reference is now made to FIGS. 3a-3 d. When combining two layouts, into a combined layout, a merge rule will join the two layouts as explained below:

CL ₁ =L ₁ +L ₂

[0087] Both layouts points to the same Framework, F1, with these sample definitions:

F₁{z₁,z₂,z₃}

L₁→F₁: {R₁→F₁,z₁,R₂→F₁z₂,R₃→F₁z₂}

L₂→F₁: {R₄→F₁z₂,R₅→F₁z₃}

[0088] Given the above data, the Combine rule could be that when merging two layouts that points to the same framework it is done as follows: $\begin{matrix} {{CL}_{1} = {L_{1} + L_{2}}} \\ {= \left\{ {\left( {{L_{1}z_{1}} + {L_{2}z_{1}}} \right),\left( {{L_{1}z_{2}} + {L_{2}z_{2}}} \right),\left( {{L_{1}z_{3}} + {L_{1}z_{3}}} \right)} \right\}} \end{matrix}$

[0089] This makes the zones, z₁, a₂ and z₃ contain:

[0090] CL₁:

z₁=R₁

z ₂ =R ₂ +R ₃ +R ₄

z₃=R₅

CL ₁={(R ₁),(R ₂ +R ₃ +R ₄),(R ₅)}

[0091] Possibly, the rendering function could be assigned an ordering, e.g. R₂(10), R₃(30), R4(20. In this case the result would be z₂=R₂+R4+R₃.

[0092]FIG. 3shows the framework, F ₁, consisting of three zones.

[0093] As mentioned above, Layout 1 points to framework 1 and places Rendering element 1 in zone 1 and Rendering element 2 and 3 in zone 2. This is illustrated in FIG. 3b.

[0094] Furthermore, Layout 2 also points to framework 1 but places Rendering element 4 in zone 2 and Rendering element 5 in zone 3. This is illustrated in FIG. 3c.

[0095] The layouts are now combined, CL₁=L₁+L₂. Since both layouts points to same framework, Combine Rule 1 applies (CR₁). Combine Rule 1 merges each cell in the given order. The result is shown in FIG. 3d.

[0096] Combine Rule CR₂: Recursive Using CR₁

[0097] Reference is now made to FIGS. 4a-4 i. Each Combined layout is processed individually but recursively. This enables the system to use the merge rule on Layouts:

CL ₁ =L ₁ +L ₂

F₁={z₁,z₂,z₃}

F₂={z₁,z₂}

L₁→F₁: {R₁→F₁z₁,R₂→F₁z₂,L₃→F₁z₃}

L₂→F₁: {R₄→F₁z₂,L₄→F₁z₃}

L₃→F₂: {R₆→F₂z₁,R_(2L →F) ₂z₂}

L₄→F₂: {R₇→F₂z₁}

[0098] Given the above statement, the Combine rule knows that when two layouts that points to the same framework the merge rule must be used. Since this is done recursively:

CL ₁ =L ₁ +L ₂

={(L₁z₁+L₂z₁),(L₁z₂+L₂z₂),(L₁z₃+L₂z₃)}

[0099] This makes the zones, z₁, z₂ and z₃ contain:

[0100] CL₁:

z₁=R₁

z ₂ =R ₂ +R ₄

z ₃ =L ₃ +L ₄ =CL ₂

[0101] Since L₃ as well as L₄ points to the same framework (with two zones), again the merge rule is to be processed: $\begin{matrix} {{CL}_{2} = {L_{3} + L_{4}}} \\ {= \left\{ {\left( {{L_{3}z_{1}} + {L_{3}z_{1}}} \right),\left( {{L_{4}z_{2}} + {L_{4}z_{2}}} \right)} \right\}} \end{matrix}$

[0102] This makes CL₂ zones z₁ and z₂ contain:

[0103] CL₂:

z ₁ =R ₆ +R ₇

z₂=R₂

CL ₂={(R ₆ +R ₂),(R ₇)}

[0104]FIG. 4a shows framework, F₁, comprising three zones, and FIG. 4b shows framework, F₂, comprising two zones.

[0105] Layout 1 points to Framework 1 and places Rendering element 1 (R₁) in zone 1, R₂ in zone 2 and Layout 3 (L₃) in zone 3. This is shown in FIG. 4c. Equally, Layout 2 points to Framework 1. R₄ are placed in zone 2 and Layout 4 are placed in zone 3, as shown in FIG. 4d.

[0106] Layout 3 uses another framework, F₂, and points R₆ to zone 1 and R₂ to zone 2 in this framework. This is shown in FIG. 4e. Layout 4 simply places Rendering element 7 into zone 1 in Framework 2, as shown in FIG. 4f.

[0107] Since Layout 1 as well as Layout 2 uses the same framework, CR₁ applies. The result is shown in FIG. 4g. Since the entire process can be used recursively, Layout 4 and 4 must now be processed. Again CR₁ applies because layout 3 and 4 both use Framework 2. The result is shown in FIG. 4h.

[0108] Processed, the CL₁=L₁+L₂ are displayed as shown in FIG. 4i. As both examples show, the sorting order of the merge is ascending (using the order of factors).

[0109] Combined Rule CR₃: Append

[0110] Reference is now made to FIGS. 5a-5 j. As with the merge rule CR₁, this applies recursively. This rule applies when combining layouts with different frameworks.

CL ₁ =L ₁ +L ₂

F₁={z₁,z₂,z₃}

F₂={z₁,z₂}

F₃={z₁,z₂,z₃}

L₁→F₁: {R₁→F₁z₁,R₂→F₁z₂,L₃→F₁z₃}

L₂→F₁: {R₄→F₁z₂,L₄→F₁z₃}

L₃→F₂: {R₆→F₂z₁,R₂→F₂,z₂}

L₄→F₃: {R₇→F₃z₁,R₂→F₃z₂,R₈→F₃z₃}

[0111] Given the above statement, the Combine rule knows that when two layouts that do not point to the same framework, the append rule must be used. Since this is done recursively: $\begin{matrix} {{CL}_{1} = {L_{1} + L_{2}}} \\ {= \left\{ {\left( {{L_{1}z_{1}} + {L_{2}z_{1}}} \right),\left( {{L_{1}z_{2}} + {L_{2}z_{2}}} \right),\left( {{L_{1}z_{3}} + {L_{2}z_{3}}} \right)} \right\}} \end{matrix}$

[0112] This makes the zones, z₁, z₂ and Z₃ contain:

[0113] CL₁:

z₁=R₁

z ₂ =R ₂ +R ₄

z ₃ =L ₃ +L ₄ =CL ₂

[0114] Since L₃ and L4 points to various frameworks, Combined Layout 2 must be appended: $\begin{matrix} {{CL}_{2} = {L_{3} + L_{4}}} \\ {{= \left\{ {\left( {L_{3}z_{1}} \right),\left( {L_{3}z_{2}} \right)} \right\}},\left\{ {\left( {L_{4}z_{1}} \right),\left( {L_{4}z_{2}} \right),\left( {L_{4}z_{3}} \right)} \right\}} \end{matrix}$

[0115]FIG. 5a shows framework, F₁, comprising ,three zones, FIG. 5b shows framework, F₂, comprising two zones, and FIG. 5c shows framework, F₃, comprising three zones.

[0116]FIG. 5d graphically shows layout, L₁, on framework, F₁, FIG. 5e shows layout, L₂, on framework, F₁, FIG. 5f shows layout, L₃, on framework, F₂, and FIG. 5g shows layout, L4, on framework, F₃.

[0117]FIG. 5h shows combined layout, CL₁=L₁+L₂, on framework, F₁, and FIG. 5i shows combined layout, CL₂=L3+L4, on frameworks, F₂ and F₃, respectively. Finally, FIG. 5j shows the final result on framework, F₁, i.e. with frameworks F₂ and F₃ embedded in F₁ according to CL₁.

[0118] Layout Designations (LD)

[0119] Reference is now made to FIGS. 6a- 6 e. It is possible to a given layout or Combined layout to assign a certain designation when used as a sub layout (when being merged with another layout). A layout designation is especially useful when making sub-layouts that are only to be included in another layout.

[0120]FIG. 6a shows framework, F₁, comprising three zones, and FIG. 6b shows framework, F₂, comprising two zones.

[0121]FIG. 6c shows layout, L₁, on framework, F₁, and FIG. 6d shows layout, L₂, on framework, F₂.

[0122] If specified L₂(LD)=L₁z₃ the result would be as shown in FIG. 6e, which shows combined layout, CL₁=L₁+L₂, since L₂ is to be placed in F₁z₃ by default.

[0123] Layout designations are usually used when there are several sub layouts that are only used as sub layouts in one layout (e.g. one master layout and a number of sub layouts).

Example

[0124] Danish Adventures

[0125] A design for an entire web site can be defined as illustrated in FIGS. 7a-10 d.

[0126]FIG. 7a shows a framework, F₁, FIG. 7b shows another framework, F₂, and FIG. 7c shows even another framework, F₃.

[0127]FIGS. 8a-8 g show the rendering elements used in this example. FIG. 8a shows the top bar, R₁. The top bar component renders a global menu. FIG. 8b shows the left menu (leftmenu.xsl), R₂. The left menu renders the main navigation on the site. FIG. 8c shows the LinkImage (linkimage.xsl), R₃. The LinkImage Rendering component simply displays a piece of graphics. FIG. 8d shows the local menu (localmenu.xsl), R₄. The local menu is the menu that is attached to a single piece of content, such as a document. FIG. 8e shows the document (document.xsl), R₆. The document Rendering component is the most common component, and is used to display a piece of HTML text. FIG. 8f shows the basis list (basislist.xsl), R₆. The basis list Rendering component is a single component that displays a list of sub documents. It may vary in design, but contains the same number of fields (heading, body text, image). FIG. 8g shows the activity list (activitylist.xsl), R₇. This is much like R₆, except that it also contains a date field.

[0128] With the above frameworks and rendering components, the site layouts can be defined as shown in FIGS. 9a-9 e.

[0129]FIG. 9a shows the master layout, L, in which:

L₁→F₁: {R₃→F₁z₁,R₁, →F₁z₁,R₂→F₁z₂,R₃→F₁z₃,R₃→F₁z₃}

[0130]FIG. 9b shows the front page layout, L₂, in which:

L₂→F₂: {R₅→F₂z₁,R₇→F₂x₂,R₄→F₂z₃}

[0131] Furthermore, L₂(LD)=L₁z₄, i.e. the result of L₂ should be inserted in z₄ of L₁.

[0132]FIG. 9c shows the document layout, L₃, in which:

L₃→F₃: {R₅→F₃z₁,R₄→F₃z₂}

[0133] Furthermore, L₃(LD)=L₁z₄, i.e. the result of L₃ should also be inserted in z₄ of L₁.

[0134]FIG. 9d shows the basis list layout, L₄, in which:

L₄→F₃: {R₆→F₃z₁,R₄→F₃z₂

[0135] Furthermore, L₄(LD)=L₁z₄, i.e. the result of L should also be inserted in Z₄ of L₁.

[0136] Finally, FIG. 9e shows the activity list layout, L₅, in which:

L₅→F₃: {R₇→F₃z₁,R₄→F₃z₂}

[0137] Furthermore, L₅(LD)=L₁z₄, i.e. the result of L₅ should also be inserted in z₄ of L₁.

[0138] Given the five layouts described above, the entire web site would appear as shown in FIGS. 10a-10 d. FIG. 10a shows CL₁=L₁+L₂, FIG. 10b shows CL₂=L₁+L₃, FIG. 10c shows CL₃=L₁+L₄, and FIG. 10d shows CL₄=L₁+L₅.

[0139] Thus, a method for managing and/or producing an output has been provided which provides an easy to use tool for creating web sites which does not impose restrictions on the obtainable complexity of the resulting output. The method according to the invention is well suited for managing and/or producing a web site. Furthermore, the invention provides a tool for easily updating and/or maintaining such a web site. 

1. A method for managing and/or producing an output, the method comprising the steps of: providing one or more layouts, each layout being divided into a number of zones, the one or more layouts in combination at least substantially covering the output, providing a number of rendering elements, each being adapted to perform a function and/or an action, assigning one or more relations and/or one or more orderings between the rendering elements and the zones, processing the zones of the one or more layouts according to the one or more relations and/or the one or more orderings, and by means of the rendering elements, providing, for each of the zones, an output based on the rendering elements and the one or more relations and/or orderings, and collecting the output of each of the zones into a final output.
 2. A method according to claim 1, further comprising the step of assigning one or more relations and/or one or more orderings between at least one of the one or more layouts and the zones.
 3. A method according to claim 2, further comprising the steps of: processing the zones of the one or more layouts according to the one or more relations and/or the one or more orderings, and by means of the rendering elements and the layouts, and recursively resolving all of the layouts into rendering elements until each zone and each layout can be processed using rendering elements.
 4. A method according to claim 1, wherein the step of processing the zones is performed in such a way that each zone is processed independently of each of the other zones.
 5. A method according to claim 1, wherein the step of assigning one or more relations and/or one or more orderings between the rendering elements and the zones is performed in such a way that, for at least one of the zones, relation(s) and/or ordering(s) between said zone(s) and two or more rendering elements is provided.
 6. A method according to claim 1, wherein the step of assigning one or more relations and/or one or more orderings between the rendering elements and the zones comprises combining at least two layouts in such a way that, for each zone, the relation(s) and/or ordering(s) comprises an addition of the relation(s) and/or ordering(s) for each of the at least two layouts.
 7. A method according to claim 1, wherein at least two layouts are provided, and wherein one of the two or more layouts define the basic structure of the output, and one or more of the other layout(s) define the contents of one or more of the zones.
 8. A method according to claim 1, further comprising the step of redefining the final output by altering the one or more relations and/or the one or more orderings between the rendering elements and the zones.
 9. A method according to claim 1, further comprising the step of redefining the final output by altering one or more of the rendering elements and/or by replacing one or more of the rendering elements with one or more different rendering elements.
 10. A method according to claim 1, further comprising the step of making the output available via a communication network.
 11. A method according to claim 10, wherein the communication network is a global communication network.
 12. A method according to claim 1, wherein the used data format is based on Extensible Markup Language (XML).
 13. A method according to claim 1, wherein the rendering elements are based on Extensible Stylesheet Language Transformations (XSLT).
 14. A method according to claim 1, wherein the rendering elements are based on NET.
 15. A method according to claim 1, further comprising the step of generating structured data by means of the rendering elements.
 16. A method according to claim 1, further comprising generating web services by means of the rendering elements.
 17. A method according to claim 1, wherein the output comprises at least part of the contents of a web site.
 18. A method according to claim 1, wherein the rendering elements-are adapted to generate an output.
 19. A method according to claim 18, wherein the rendering elements are adapted to generate a visual output, and wherein the step of collecting the output of each of the zones into a final output is performed by displaying the visual output of each of the zones.
 20. A method according to claim 1, wherein the rendering elements are adapted to process a layout.
 21. A method according to claim 1, further comprising the steps of: caching the output from one or more of the zones and/or from one or more of the rendering elements and/or from one or more of the layouts, and/or the final output, and using the cached output at a later time.
 22. A method according to claim 1, wherein at least one of the rendering elements comprises an ordered sequence of rendering elements, the output of each of the rendering elements of said sequence being used as an input to the subsequent rendering element.
 23. A method according to claim 1, further comprising the steps of: receiving structured data, said structured data being divided into substructures, assigning one or more layouts to each substructure, and processing each substructure in such a way that the assigned layout(s) is/are processed, resulting in an output.
 24. A method according to claim 23, further comprising the step of placing an editor on the structured data.
 25. A web site comprising: one or more layouts, each layout being divided into a number of zones, the one or more layouts in combination at least substantially covering the web site, an output which has been generated by a number of rendering elements based on one or more relations and/or one or more orderings between the rendering elements and the zones.
 26. A web site according to claim 25, wherein the output is a visual output. 